文章目录
  1. 1. iOS开发 git github 初学+进阶

iOS开发 git github 初学+进阶

iOS开发 git github 初学+进阶

\

2012-08-21
10:52:33|  分类: MyMac |  标签:git  github  入门  进阶

\

|字号

\

 订阅

1 注册github,配置git环境

\

2 github上创建立一个项目

\

我们创建的是一个github仓库,一个仓库里只能存放(或叫对应)一个项目

\

打开teminal

\

Global setup:

\

Set up git

\

  git config –global user.name “Your Name”

\

  git config –global user.email

\

Next steps:打开已有Xcode工程

\

  git init

\

  git commit -m ‘first commit’#提交到库

\

  git remote add origin
git github.com:defnngj/hibernaet-demo2.git#链接到远程git

\

  git push -u origin master

\

3 使用ssh

\

$ cd ~/. ssh 检查本机的ssh密钥,如果木有,百度

\

如果不是第一次使用,请执行下面的操作,清理原有ssh密钥。

\

$ mkdir key_backup

\

$ cp id_rsa* key_backup

\

$ rm id_rsa*

生成新的密钥:

\

Ssh-keygen –t rsa –C “defnngj gmai.com”

\

最好不要直接打开~/.ssh/里面的id_rsa.pub文件,使用vi
id_rsa.pub.防止有额外符号

\

登陆github系统。点击右上角的 Account Settings—>SSH Public keys —> add another public keys

\

把你本地生成的密钥复制到里面(key文本框中), 点击 add key 就ok了

\

在git中运行下面命令:

\

$ git –T \

\

如果提示:Hi defnngj You’ve successfully authenticated, but GitHub does not provide shell access. 说明你连接成功了。

\

4 开始使用

\

**$ git status  ** //查看当前项目下所有文的状态,如果第一次,你会发现都红颜色的,因为它还没有交给git/github管理。

\

**$ git add . **  //(.)点表示当前目录下的所有内容,交给git管理,也就是提交到了git的本地仓库。

\

Ps:git的强大之处就是有一个本地仓库的概念,在没有网络的情况下可以先将更新的内容提交到本地仓库。

\

$ git commit –m”new natter ”  //对你更新或修改了哪些内容做一个描述。

\

$ git remote add origin git github.com:defnngj/hibernate-demo.git

\

//如果你是第一次提交项目,这一句非常重要,这是你本地的当前的项目与远程的哪个仓库建立连接。

\

Psorigin可以改为别人的名字,但是在你下一次push(提交)时,也要用你修改之后的名字。

\

**$ git remote -v ** //查看你当前项目远程连接的是哪个仓库地址。

\

**$ git push -u origin master ** //将本地的项目提交到远程仓库中。

\

如果你是第一次想把github上面的项目克隆到本地或者要克隆别人的项目到地。

\

**$ git clone git github.com:defnngj/hibernate-demo.git ** //在git下面切换到想存放此项目的文件目录下,运行这条命令就可以将项目克隆下来。

\

假如本地已经存在了这个项目,而仓库中又有一新的更新,如何把更的合并到本地的项目中?

\

**$ git fetch origin **   //取得远程更新,这里可以看做是准备要取了

\

$ git merge origin/master  //把更新的内容合并到本地分支/master

\

$ git rm  
aaa.java
    //移除我们删除的那个文件,不然git不允许我们往远程仓库提交。

\

**$ git rm   bbb/ -r **  // -r 会把bbb/目录下的所有内容一次性移动。

\

5 继续

\

1. .gitIgnore 文件忽略哪些不被Git跟踪的文件

在根目录下生成 .gitignore 文件,

例子1:

# Can ignore specific files

.DS_Store

# Use wildcards as well

*~

*.swp

# Can also ignore all directories and files in a directory.

tmp/**/*

\

例子2:

# Ignore all dotfiles…

.*

# except for .gitignore

!.gitignore

\

2. 使用GitHub进行多人协同开发

\

GitHub上大的项目如Ruby有多个Branch

\

(0) 克隆GitHub项目

\

git clone git://github.com/xxx/xxx.git

\

(1) 分支的创建和合并

\

# git branch local

\

# git checkout local    切换到local

\

# …  开发local分支

\

与master分支合并

\

# git checkout master

\

# git merge local

\

# git branch -d local    合并完后删除local

\

(2) 最佳方式的GitHub多人协作,每个人建立自己分支

\

假定有项目创建者A (主力开发者和代码合并)和其他开发者B, C , D, E …

\

创建者A将其他开发者加到项目的Collaborator里
,如下图所示(项目Admin菜单)

\

其他开发者B, C , D, E…,配置好Git和GitHub的证书:

\

# git clone : xxx/xxx.git   ( private 链接)

\

# git pull    从服务器更新

\

# git log   查看其他成员更新日志

\

其他开发者建议在开发时建立自己的分支,不要在master上整了

\

B开发者(当然主力开发者也适用)

\

# git branch dev-b

\

# git checkout dev-b

\

….  开发

\

将分支push到github

\

# git push origin dev-b  
(如果不通过github,通过自己机器上的路径也可以)

\

主开发者A

\

# git pull origin dev-b  即可合并其他开发者的Branch

\

为了保险起见,主开发者可以在新的Branch中测试B的开发成果,测试稳定后再合并进Master

\

# git branch newexp

\

# git checkout newexp

\

# git pull origin dev-b

\

… (testing…)

\

….

\

# git checkout master

\

# git merge newexp

\

3. 建立自己的Git服务器进行多人协同开发

\

服务器server1:

\

# mkdir myproject.git

\

# cd myproject.git

\

# git –bare init –shared

\

开发者A 初始化服务器上项目

\

# cd myproject

\

# git push user server1:myproject.git  master

\

开发者N可获得初始项目文件

\

# git clone user server1:myproject.git

\

改动

\

# git commit

\

# git pull

\

# git push

文章目录
  1. 1. iOS开发 git github 初学+进阶